这是一个php示例,但适用于任何语言的算法都可以。我特别想做的是将美国和加拿大冒泡到列表的首位。这是为简洁起见而缩短的数组示例。array(0=>'--SELECT--',1=>'Afghanistan',2=>'Albania',3=>'Algeria',4=>'AmericanSamoa',5=>'Andorra',)ID需要保持完整。因此,不幸的是,将它们设为-1或-2是行不通的。 最佳答案 在这些情况下,我通常做的是添加一个名为DisplayOrder或类似名称的单独字段。一切都默认为,比方说,1...然后您按Display
我得到了一个包含7种水果的数组:$fruits=array("lemon","orange","banana","apple","cherry","apricot","Blueberry");我不知道如何以这样的方式打印数据:Apple,ApricotBananaCherryLemonOrange很抱歉这个问题可能有点难。但是,如果可以的话,请提供帮助。 最佳答案 我会首先使用数组排序函数,例如sort(),然后创建一个循环遍历数组并跟踪它输出的最后一个单词的第一个字母是什么-每次第一个字母改变时,首先输出一个新的标题。
我的数组看起来像这样:Array([0]=>Array([0]=>1[1]=>6[2]=>4[3]=>5)[1]=>Array([0]=>272.05[1]=>63.54[2]=>544.79[3]=>190.62)[2]=>Array([0]=>2011-03-0614:08:19[1]=>2011-03-0614:29:04[2]=>2011-03-0614:28:39[3]=>2011-03-0614:29:28))我想按$myArray[1]排序。我有这个usort函数:functionsortAmount($a,$b){returnstrnatcmp($a[1],$b[1])
我有数组:$array=array(array('2012-12-12','vvv'),array('2012-12-14','df'),array('2012-12-10','vvv'),array('2012-12-11','vvv'));Array([0]=>Array([0]=>2012-12-12[1]=>vvv)[1]=>Array([0]=>2012-12-14[1]=>df)[2]=>Array([0]=>2012-12-10[1]=>vvv)[3]=>Array([0]=>2012-12-11[1]=>vvv))http://codepad.org/gxw2yKMU可
我有两个php数组。并对这些数组中的每一个都有不同的排序问题:1)首先包含域列表:values[0]="absd.com";values[1]="bfhgj.org";values[2]="sdfgh.net";values[3]="sdff.com";values[4]="jkuyh.ca";我需要按DOMAIN值的字母顺序对这个数组进行排序,换句话说,按“.”之后的值排序,因此排序后的域将如下所示:values[0]="jkuyh.ca";values[1]="absd.com";values[2]="sdff.com";values[3]="sdfgh.net";values[4
是否有更好的方法按照$tabdocids值的顺序对$datas数组进行排序?foreach($tabdocidsas$ordered_id){foreach($datasas$doc)if($doc->docid==$ordered_id)$ordered[]=$doc;}$datas=$ordered; 最佳答案 去罗马的一条路...#forcollect$ordered=array_flip($tabdocids);//tookeeptheorderfromthe$tabdocidsarray_map(function($doc
给定两个数组$A1和$A2,对$A1进行排序,使元素之间的相对顺序相同如$A2中的那些。对于$A2中不存在的元素,将它们按升序移动到数组的后面。$A1=[2,1,2,5,7,1,9,3,6,8,8];$A2=[2,1,8,3];期望的输出:[2,2,1,1,8,8,3,5,6,7,9]编码尝试:$sorted=array();foreach($a1as$key=>$value){if(in_array($value,$a2)){$sorted[array_search($value,$a1)]=$value;}} 最佳答案 这可以通
我已尝试调整此代码以用于对命名键/字段上的多维数组进行排序。该字段是一个整数,我需要将其从最小到最大排序。functionmyCmp($a,$b){returnstrcmp($a["days"],$b["days"]);}uasort($myArray,"myCmp");这按我的需要对数组进行了排序,但顺序错误。目前它从最大到最小排序,而不是使用自然顺序。我需要按自然顺序从小到大排序(例如,2在5、12和24之前)。 最佳答案 strnatcmp()是你的friend例如(使用php5.3闭包/anonymousfunction):
此代码无法正常运行,但它表明了我正在尝试做的事情:functionsort_2d_by_index($a,$i){functioncmp($x,$y){//Nestedfunction,can'tfind$i//(global$idefeatsthepurposeofpassinganarg)if($x[$i]==$y[$i]){return0;}return($x[$i]必须有更好的方法来做到这一点。我一直在研究ksort()、multisort()和各种各样的方法,直到我厌倦了尝试将其全部解决。情况是这样的:我有一个二维数组...array(array(3,5,7),array(2
我有一个如下所示的数组:Array([90]=>Array([1056]=>44.91[1055]=>53.56[1054]=>108.88[1053]=>23.28),[63]=>Array([1056]=>44.44[1055]=>53.16[1054]=>108.05),[21]=>Array([1056]=>42.83[1055]=>51.36[1054]=>108.53));两个键([x]和[y])都指向我数据库中的ID,因此它们需要保持完整。[x]的顺序无关紧要,但我需要按[y]的值对每个数组进行排序。编辑:我试过这个循环,但它似乎不起作用:foreach($distanc